package jm.nj.demo03mian.demo09;
/*
* Java中的转型
*           向上转型:多态本身就是向上转型,把子类的对象赋值给父类的引用
*                   格式:父类/接口 = new 子类/实现类();
*                   好处:扩展性强
*
*           向下转型:前提必须是多态,可以强制的把父类的引用转换为子类的引用,因为父类就是根据子类创建的
*                   格式:子类的类型 变量名 = (子类的类型)父类的引用变量-----对象还是zi
* `                 好处:向下转型之后可以使用子类特有的属性和方法.
* */
public class Demo {
    public static void main(String[] args) {
        //向上转型:父类病了,儿子化妆成了父亲,替父亲工作

        /*
        * int  a = 10;
        * double d = a;
        * */
        Fu f =  new Zi();
        f.work();

        /*
        * 儿子工作完后想玩游戏,多态的弊端无法使用子类特有的内容
        *
        * 向下转类型:儿子工作完想玩游戏,卸妆,变回儿子
        *
        * double d = a = 10;
        * int b = (int)a
        * */
        Zi zi = (Zi)f;
        zi.playGame();
    }
}
